from lxml import etree

text = ''' <div> <ul> 
        <li class="item-1"><a href="link1.html">first item</a></li> 
        <li class="item-1"><a href="link2.html">second item</a></li> 
        <li class="item-inactive"><a >third item</a></li> 
        <li class="item-1"><a href="link4.html">fourth item</a></li> 
        <li class="item-0"><a href="link5.html">fifth item</a> 
        </ul> </div> '''

# 将html字符串转换成element对象
element = etree.HTML(text)

# 数据提取的时候,  先分组 再进行数据的提取
# 根据li标签进行分组
li_list = element.xpath("//li")
# 在每一组中继续进行数据的提取
for li in li_list:
    item = {}
    item["title"] = li.xpath("./a/text()")[0]
    item["href"] = li.xpath("./a/@href")[0] if len(li.xpath("./a/@href"))>0 else None
    print(item)



# # 获取所有的新闻标题,通过xpath方法 返回的是一个数据的列表
# title_list = element.xpath("//li/a/text()")
# # 获取到所有的详情页链接 href, 通过xpath方法 返回的是一个数据的列表
# href_list = element.xpath("//li/a/@href")
# # print(title_list)
# # print(href_list)
#
# for title in title_list:
#     item = {}
#     item["title"] = title
#     item["href"] = href_list[title_list.index(title)]
#     print(item)
